//package com.xiao.singleapp.common.web.controller;
//
//import com.github.pagehelper.PageHelper;
//import com.github.pagehelper.PageInfo;
//import com.sun.org.slf4j.internal.Logger;
//import com.sun.org.slf4j.internal.LoggerFactory;
//import com.xiao.singleapp.common.constant.HttpStatus;
//import com.xiao.singleapp.common.util.DateUtil;
//import com.xiao.singleapp.common.util.FastjsonUtil;
//import com.xiao.singleapp.common.util.SqlUtil;
//import com.xiao.singleapp.common.util.StringUtil;
//import com.xiao.singleapp.common.web.page.PageDomain;
//import com.xiao.singleapp.common.web.page.TableDataInfo;
//import com.xiao.singleapp.common.web.page.TableSupport;
//import org.springframework.web.bind.WebDataBinder;
//import org.springframework.web.bind.annotation.InitBinder;
//
//import java.beans.PropertyEditorSupport;
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//
///**
// * web层通用数据处理
// */
//public class BaseController {
//
//    final Logger log = LoggerFactory.getLogger(BaseController.class);
//
//
//    /**
//     * 将前台传递过来的日期格式的字符串，自动转化为Date类型
//     */
//    @InitBinder
//    public void initBinder(WebDataBinder binder) {
//        // Date 类型转换
//        binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
//            @Override
//            public void setAsText(String text) {
//                setValue(DateUtil.parseDate(text));
//            }
//        });
//    }
//
//    /**
//     * 设置请求分页数据
//     */
//    protected void startPage() {
//        PageDomain pageDomain = TableSupport.buildPageRequest();
//        Integer pageNum = pageDomain.getPageNum();
//        Integer pageSize = pageDomain.getPageSize();
//        if (StringUtil.isNotNull(pageNum) && StringUtil.isNotNull(pageSize)) {
//            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
//            PageHelper.startPage(pageNum, pageSize, orderBy);
//        } else {
//            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
//            PageHelper.startPage(0, 1000, orderBy);
//        }
//    }
//
//    /**
//     * 响应请求分页数据
//     */
//    @SuppressWarnings({"rawtypes", "unchecked" })
//    protected TableDataInfo getDataTable(List<?> list) {
//        TableDataInfo rspData = new TableDataInfo();
//        rspData.setCode(HttpStatus.SUCCESS);
//        rspData.setRows(list);
//        rspData.setMsg("查询成功");
//        rspData.setTotal(new PageInfo(list).getTotal());
//        return rspData;
//    }
//
//    /**
//     * 重写list请求参数
//     * 把一个个 K-V 键值对，
//     * 转换成一个 <searchMap, String> json格式的String
//     */
//    protected Map<String, Object> overrideParamsMap(Map<String, Object> params) {
//        if (params == null) {
//            return params;
//        }
//        String key = "searchMap";
//        Object obj = params.get(key);
//        if (obj != null) {
//            Map<String, Object> searchMap = FastjsonUtil.stringToCollect(obj.toString());
//            params.put(key, searchMap);
//        }
//        return params;
//    }
//
//    /**
//     * 分页
//     *
//     * @param params
//     */
//    protected void pageParams(Map<String, Object> params) {
//        PageDomain pageDomain = TableSupport.buildPageRequest();
//        Integer pageNum = (pageDomain.getPageNum() == null || pageDomain.getPageNum() == 0) ? 1 : pageDomain.getPageNum();
//        Integer pageSize = (pageDomain.getPageSize() == null || pageDomain.getPageSize() == 0) ? 10 : pageDomain.getPageSize();
//        int page = (pageNum - 1) * pageSize;
//        params.put("pageNum", page);
//        params.put("pageSize", pageSize);
//    }
//
//    /**
//     * 组装分页请求数据
//     *
//     * @param list
//     * @param total
//     * @return
//     */
//    protected TableDataInfo getDataTable(List<?> list, Long total) {
//        TableDataInfo rspData = new TableDataInfo();
//        rspData.setCode(HttpStatus.SUCCESS);
//        rspData.setRows(list);
//        rspData.setMsg("查询成功");
//        rspData.setTotal(total);
//        return rspData;
//    }
//}
